<?php
/**
 * Created by PhpStorm.
 * User: dell
 * Date: 2018/7/19
 * Time: 17:44
 */

namespace Modules\Admin\Service;

/**
 * 获得所有模板服务类
 * Class TemplateService
 * @package Modules\Admin\Service
 */
class TemplateService
{
    /**
     * 获得所有模板信息方法
     */
    public function getAllTemplates(){
//        dd(123);
//        glod(获得public下的templates下的说有的文件名 ):获得所有目录名称的方法
        $templates=glob(public_path('templates/*'));
//        dd($templates);得到了templates下的所有目录下的全路径地址；
//        现在装备加载模板，但是模板有很多，所以需要判断一下，当模板文件夹中存在package.json文件，就为合法模板，则对此模板进行加载，否则不予理会。
//        想要得到检查每个模板中是否都存在这个.json文件就需要循环
        $comfigs=[];
            //            在循环体重写检测程序显得太乱，所以我把检测程序写在下面的方法中，在这里直接调用即可
        foreach($templates as $v){
            if($comfig = $this->parseConfig($v)){
                $comfigs[] =$comfig;
            }
        }
//        dd($comfigs);
        return $comfigs;
    }

    /**
     * 检测.json文件是否存在方法
     * 检测是templates目录下是否存在.json文件，以及修改.json文件中'img'的路径
     */
    public function parseConfig($dir){
//        拼接处package.json文件的路径
        $name = basename($dir);
//        dd($basename);
        $package = $dir.'/package.json';
//        dd($package);
//        现在使用is_file()方法开始检测templates目录下是否存在这个package.json文件
        if(is_file($package)){
//            如果文件存在就用file_get_contents($参数为要获取得文件路径)这个方法读取文件中的信息，现在获取文件中的内容
            $config = file_get_contents($package);
//            dd($config);这是我们得到了json形式的数据，现在开始将件json形式的数据转换成php能看懂的数据，
//            这里我们使用json_decode($要转换的数据,有true就转换成数组形式，没有true就转换成对象形式的数据)
            $config = json_decode($config,true);
//            dd($config);
//            现在进行对配置文件中的图片进行处理，为模板中的图片拼接处路径
            $config['img'] = asset('/templates/'.$name.'/'.$config['img']);
            $config['name'] = $name;
//            dd($config);
        }
//        将处理好的数据返回给调用这个方法的地方
            return $config;

    }
}